github: ci: add MIPS64, PowerPC64 and RISCV64
authorÁlvaro Fernández Rojas <[email protected]>
Tue, 18 Nov 2025 08:55:30 +0000 (09:55 +0100)
committerÁlvaro Fernández Rojas <[email protected]>
Tue, 18 Nov 2025 08:57:36 +0000 (09:57 +0100)
MIPS64, PowerPC64 and RISCV64 are popular OpenWrt archs.
Refactor the sizes build step to generate the table programatically.

Signed-off-by: Álvaro Fernández Rojas <[email protected]>
.github/workflows/ci.yml

index c0d551da7ad4beda0ef3295d749388ddbdc586ef..9c2196a623867b64b7276a018f30de69bf007f23 100644 (file)
@@ -4,6 +4,10 @@ on:
   pull_request:
   push:
 
+env:
+  archs: "aarch64 arm mips mips64 powerpc powerpc64 riscv64 x86_64"
+  variants: "build"
+
 jobs:
   build:
     name: Build ${{ matrix.arch }}
@@ -21,9 +25,18 @@ jobs:
           - arch: mips
             gcc: /usr/bin/mips-linux-gnu-gcc
             packages: gcc-mips-linux-gnu
+          - arch: mips64
+            gcc: /usr/bin/mips64-linux-gnuabi64-gcc
+            packages: gcc-mips64-linux-gnuabi64
           - arch: powerpc
             gcc: /usr/bin/powerpc-linux-gnu-gcc
             packages: gcc-powerpc-linux-gnu
+          - arch: powerpc64
+            gcc: /usr/bin/powerpc64-linux-gnu-gcc
+            packages: gcc-powerpc64-linux-gnu
+          - arch: riscv64
+            gcc: /usr/bin/riscv64-linux-gnu-gcc
+            packages: gcc-riscv64-linux-gnu
           - arch: x86_64
             gcc: /usr/bin/x86_64-linux-gnu-gcc
             packages: gcc-x86-64-linux-gnu
@@ -31,7 +44,10 @@ jobs:
       size-aarch64: ${{ steps.build.outputs.size_aarch64 }}
       size-arm: ${{ steps.build.outputs.size_arm }}
       size-mips: ${{ steps.build.outputs.size_mips }}
+      size-mips64: ${{ steps.build.outputs.size_mips64 }}
       size-powerpc: ${{ steps.build.outputs.size_powerpc }}
+      size-powerpc64: ${{ steps.build.outputs.size_powerpc64 }}
+      size-riscv64: ${{ steps.build.outputs.size_riscv64 }}
       size-x86_64: ${{ steps.build.outputs.size_x86_64 }}
     steps:
       - name: Checkout omcproxy
@@ -115,10 +131,28 @@ jobs:
           size_aarch64: ${{needs.build.outputs.size-aarch64}}
           size_arm: ${{needs.build.outputs.size-arm}}
           size_mips: ${{needs.build.outputs.size-mips}}
+          size_mips64: ${{needs.build.outputs.size-mips64}}
           size_powerpc: ${{needs.build.outputs.size-powerpc}}
+          size_powerpc64: ${{needs.build.outputs.size-powerpc64}}
+          size_riscv64: ${{needs.build.outputs.size-riscv64}}
           size_x86_64: ${{needs.build.outputs.size-x86_64}}
         run: |
           echo "### ${GITHUB_WORKFLOW} sizes :floppy_disk:" >> $GITHUB_STEP_SUMMARY
-          echo "| Variant | aarch64 | arm | mips | powerpc | x86_64 |" >> $GITHUB_STEP_SUMMARY
-          echo "| :---: | :---: | :---: | :---: | :---: | :---: |" >> $GITHUB_STEP_SUMMARY
-          echo "| omcproxy | ${size_aarch64} | ${size_arm} | ${size_mips} | ${size_powerpc} | ${size_x86_64} |" >> $GITHUB_STEP_SUMMARY
+
+          header="| arch |"
+          table="| :---: |"
+          for variant in ${{ env.variants }}; do
+            header="$header $variant |"
+            table="$table :---: |"
+          done
+          echo $header >> $GITHUB_STEP_SUMMARY
+          echo $table >> $GITHUB_STEP_SUMMARY
+
+          for arch in ${{ env.archs }}; do
+            row="| $arch | "
+            for variant in $variants; do
+              value=size_${arch}
+              row="$row ${!value} |"
+            done
+            echo $row >> $GITHUB_STEP_SUMMARY
+          done